Field of the Invention
The present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, it relates to a method, system and computer-usable medium for efficient searching of a semantic model of resources and resource relationships.
Description of the Related Art
An entity-relationship (ER) model is a data model that provides a systematic way of describing the data or information aspects of a business domain or its process requirements. The business domain, or its process requirements, is modeled as entities (i.e., things or resources) that are characterized by various attributes (i.e., characteristics or properties). These entities are linked to one another by relationships that express the dependencies and requirements between them. Diagrams created to graphically represent these entities, attributes, and relationships are referred to as entity-relationship diagrams. A common need in information systems is to search through a collection of these entities in a model for those entities with predetermined attributes or relationships.
Such information models are often used in software applications to capture relevant information about entities. The modeled entities, therefore, can be diverse and include physical assets, operations, organizations, metadata, or other related items. Relationships between those entities are equally diverse as they can represent a very broad set of associations. As an example, a city water infrastructure system may be modeled to show entities such as pipes, valves, flow meters, switches, regulators, etc. and their relationship to one another. These relationships may include physical connections, device types or manufacturer, purchase and installation dates, supplier information, and installation teams or contractors. Other relationships may include geospatial mapping within other city infrastructures, such as buildings, roads, sidewalks, subways, failure incidents, maintenance records, and so forth.
It is also typical to represent information models as graphs, where nodes represent the modeled entities and edges between nodes represent a predetermined relationship. With this representation of a domain, the model can be navigated in un-prescribed ways to discover new or extended relationships between entities and entity associations. Such newly-discovered information can often assist in converting data into meaningful insights that can lead to optimization of business operations or processes. As a result, it may be advantageous to create informational models that are very complete and capture as many entities and relationships as possible in order to provide the basis for discovering previously unrealized associations.
However, achieving completeness in an information model can also lead to increased complexity, which in turn can create challenges in navigating the model when attempting to discover the paths that are most likely to provide meaningful relationships. Generally, this refinement or filtering is achieved by adding a series of “where” clauses, or functional equivalents, to model queries implemented model navigation. However, this approach complicates model navigation as the user or application needs to know which relationships to include or exclude. As an alternative, filtering may be done at the data analysis layer such that identified relationships are not prioritized at the time of graph interrogation, but instead, only after the data is retrieved. This approach is likewise not optimal, as more data needs to be moved from the model to the interrogating application and the logic of that refinement is moved as an application responsibility, or to the user if unqualified data is represented for their consideration.